home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Frameworks / TransSkel 3.24 / Interface / TransSkel.p < prev    next >
Text File  |  1996-01-24  |  13KB  |  383 lines

  1. { Metrowerks Pascal interface specification for TransSkel }
  2. { for:       TransSkel 3.24 }
  3. { last edit: 24 January 96 }
  4.  
  5. {----------------------------------------------------------------------------}
  6. unit TransSkel;
  7. interface
  8. {----------------------------------------------------------------------------}
  9.  
  10. uses
  11. Types, Memory, Events, QuickDraw, Windows, Dialogs, Menus, Controls, StandardFile;
  12.  
  13. {$IFC DEFINED POWERPC}
  14. {$SETC skelPPC := 1}
  15. {$ELSEC}
  16. {$SETC skelPPC := 0}
  17. {$ENDC}
  18.  
  19. {----------------------------------------------------------------------------}
  20.     const
  21. {----------------------------------------------------------------------------}
  22.  
  23. { general }
  24.  
  25.         skelMajorRelease = 3;            { current release is 3.24 }
  26.         skelMinorRelease = 24;
  27.  
  28. { window property numbers }
  29.  
  30.         skelWPropAll = 0;                { pseudo-property }
  31.         skelWPropModeless = 1;            { modeless dialog }
  32.         skelWPropModal = 2;                { modal dialog }
  33.         skelWPropTool = 3;                { tool window }
  34.         skelWPropMovableModal = 4;        { movable modal dialog }
  35.         skelWPropHelp = 5;                { help window }
  36.         skelWPropText = 6;                { text window }
  37.         skelWPropDisplayWind = 7;        { TransDisplay window }
  38.         skelWPropEditWind = 8;            { TransEdit window }
  39.         skelWPropApplBase = 256;        { general-use prop num base }
  40.  
  41. { SkelQuery () query selectors }
  42.  
  43.         skelQVersion = 1;                { TransSkel version }
  44.         skelQSysVersion = 2;            { System software version }
  45.         skelQHasWNE = 3;                { whether has WaitNextEvent() }
  46.         skelQMBarHeight = 4;            { menu bar height }
  47.         skelQHas64KROM = 5;                { whether has 64K ROM }
  48.         skelQHasColorQD = 6;            { whether has Color QuickDraw }
  49.         skelQInForeground = 7;            { whether in foreground }
  50.         skelQHasGestalt = 8;            { whether has Gestalt() }
  51.         skelQHasAppleEvents = 9;        { whether has Apple Events }
  52.         skelQQDVersion = 10;            { QuickDraw version }
  53.         skelQGrayRgn = 11;                { Desktop region }
  54.         skelQHasThreads = 12;            { whether has Thread Manager }
  55.  
  56. { convenience routines }
  57.  
  58.         skelPositionNone = 0;            { leave as is }
  59.         skelPositionOnMainDevice = 1;    { position on main device }
  60.         skelPositionOnParentWindow = 2;    { position on FrontWindow() }
  61.         skelPositionOnParentDevice = 3;    { position on FrontWindow()'s device }
  62.  
  63. { Apple menu number }
  64.  
  65.         skelAppleMenuID = 128;
  66.  
  67.  
  68. {----------------------------------------------------------------------------}
  69.     type
  70. {----------------------------------------------------------------------------}
  71.  
  72. { window property types }
  73.  
  74.         SkelWindPropPtr = ^SkelWindProperty;
  75.         SkelWindPropHandle = ^SkelWindPropPtr;
  76.         SkelWindProperty = record
  77.                 skelWPropType: Integer;
  78.                 skelWPropData: LongInt;
  79.                 skelWPropNext: SkelWindPropHandle;
  80.             end;
  81.  
  82. { initialization parameters }
  83.  
  84.         SkelInitParamsPtr = ^SkelInitParams;
  85.         SkelInitParams = record
  86.                 skelMoreMasters: Integer;
  87.                 skelGzProc: ProcPtr;
  88.                 skelResumeProc: ProcPtr;
  89.                 skelStackAdjust: Size;
  90.             end;
  91.  
  92. { Procedure types below are all equivalenced to ProcPtr. They're used so }
  93. { that procedure/function specifications will read more similarly to their }
  94. { C counterparts.  The comment preceding each type definition shows how }
  95. { procedures should be written. }
  96.  
  97. { miscellaneous procedure types }
  98.  
  99.         { procedure Idle; }
  100.         SkelIdleProcPtr = ProcPtr;
  101.         { procedure EventHook (var event: EventRecord); }
  102.         SkelEventHookProcPtr = ProcPtr;
  103.         { procedure SuspendResume (inForeground: Boolean); }
  104.         SkelSuspendResumeProcPtr = ProcPtr;
  105.         { procedure ClipCvt (inForeground: Boolean); }
  106.         SkelClipCvtProcPtr = ProcPtr;
  107.         { procedure AEHandler (var event: EventRecord); }
  108.         SkelAEHandlerProcPtr = ProcPtr;
  109.         { procedure DlogItemProc (dlog: DialogPtr; item: Integer); }
  110.         SkelDlogItemProcPtr = ProcPtr;
  111.  
  112. { window-handler procedure types }
  113.  
  114.         { procedure Mouse (where: Point; when: LongInt; modifiers: Integer); }
  115.         SkelWindMouseProcPtr = ProcPtr;
  116.         { procedure Key (c: char; code: Integer; modifiers: Integer); }
  117.         SkelWindKeyProcPtr = ProcPtr;
  118.         { procedure Update (resized: Boolean); }
  119.         SkelWindUpdateProcPtr = ProcPtr;
  120.         { procedure Activate (active: Boolean); }
  121.         SkelWindActivateProcPtr = ProcPtr;
  122.         { procedure Close; }
  123.         SkelWindCloseProcPtr = ProcPtr;
  124.         { procedure Clobber; }
  125.         SkelWindClobberProcPtr = ProcPtr;
  126.         { procedure WindIdle; }
  127.         SkelWindIdleProcPtr = ProcPtr;
  128.  
  129.         { procedure Select(dlog: DialogPtr; item:Integer); }
  130.         SkelWindSelectProcPtr = ProcPtr;
  131.         { procedure Zoom (wind: WindowPtr; zoomDir: Integer); }
  132.         SkelWindZoomProcPtr = ProcPtr;
  133.  
  134. { menu-handler procedure types }
  135.  
  136.         { procedure Select (item: Integer); }
  137.         SkelMenuSelectProcPtr = ProcPtr;
  138.         { procedure Clobber (menu: MenuHandle); }
  139.         SkelMenuClobberProcPtr = ProcPtr;
  140.  
  141.         { procedure MenuHook; }
  142.         SkelMenuHookProcPtr = ProcPtr;
  143.  
  144. { This is used for routines that pass around pointers to event }
  145. { records. }
  146.  
  147.         EventRecordPtr = ^EventRecord;
  148.  
  149. {----------------------------------------------------------------------------}
  150. { Core routines }
  151. {----------------------------------------------------------------------------}
  152.  
  153. { initialization/termination routines }
  154.  
  155.     procedure SkelGetInitParams (initParams: SkelInitParamsPtr);
  156.     procedure SkelInit (initParams: SkelInitParamsPtr);
  157.     procedure SkelCleanup;
  158.  
  159. { event-loop-related routines }
  160.  
  161.     procedure SkelEventLoop;
  162.     procedure SkelStopEventLoop;
  163.     procedure SkelRouteEvent (var event: EventRecord);
  164.     procedure SkelActivate (wind: WindowPtr;
  165.                                     active: Boolean);
  166.     procedure SkelClose (wind: WindowPtr);
  167.     function SkelGetCurrentEvent: EventRecordPtr;
  168.     function SkelGetModifiers: Integer;
  169.     procedure SkelSetEventMask (mask: Integer);
  170.     function SkelGetEventMask: Integer;
  171.     procedure SkelSetIdle (p: SkelIdleProcPtr);
  172.     function SkelGetIdle: SkelIdleProcPtr;
  173.     procedure SkelSetEventHook (p: SkelEventHookProcPtr);
  174.     function SkelGetEventHook: SkelEventHookProcPtr;
  175.     procedure SkelSetSuspendResume (p: SkelSuspendResumeProcPtr);
  176.     function SkelGetSuspendResume: SkelSuspendResumeProcPtr;
  177.     procedure SkelSetClipCvt (p: SkelClipCvtProcPtr);
  178.     function SkelGetClipCvt: SkelClipCvtProcPtr;
  179.     procedure SkelSetWaitTimes (fgTime: LongInt;
  180.                                     bgTime: LongInt);
  181.     procedure SkelGetWaitTimes (var fgTime: LongInt;
  182.                                     var bgTime: LongInt);
  183.     procedure SkelSetThreadTimes (fgTime: LongInt;
  184.                                     bgTime: LongInt);
  185.     procedure SkelGetThreadTimes (var fgTime: LongInt;
  186.                                     var bgTime: LongInt);
  187.  
  188.     procedure SkelSetAEHandler (p: SkelAEHandlerProcPtr);
  189.     function SkelGetAEHandler: SkelAEHandlerProcPtr;
  190.  
  191. { window handling routines }
  192.  
  193.     function SkelWindow (wind: WindowPtr;
  194.                                     doMouse: SkelWindMouseProcPtr;
  195.                                     doKey: SkelWindKeyProcPtr;
  196.                                     doUpdate: SkelWindUpdateProcPtr;
  197.                                     doActivate: SkelWindActivateProcPtr;
  198.                                     doClose: SkelWindCloseProcPtr;
  199.                                     doClobber: SkelWindClobberProcPtr;
  200.                                     doIdle: SkelWindIdleProcPtr;
  201.                                     frontOnly: Boolean): Boolean;
  202.     function SkelDialog (dlog: DialogPtr;
  203.                                     doFilter: ModalFilterProcPtr;
  204.                                     doEvent: SkelWindSelectProcPtr;
  205.                                     doClose: SkelWindCloseProcPtr;
  206.                                     doClobber: SkelWindClobberProcPtr): Boolean;
  207.     procedure SkelRmveWind (wind: WindowPtr);
  208.     procedure SkelRmveDlog (dlog: DialogPtr);
  209.     function SkelWindowRegistered (wind: WindowPtr): Boolean;
  210.     function SkelIsDlog (wind: WindowPtr): Boolean;
  211.     function SkelIsMMDlog (wind: WindowPtr): Boolean;
  212.     procedure SkelSetGrowBounds (wind: WindowPtr;
  213.                                     hLo: Integer;
  214.                                     vLo: Integer;
  215.                                     hHi: Integer;
  216.                                     vHi: Integer);
  217.     procedure SkelSetZoom (wind: WindowPtr;
  218.                                     p: SkelWindZoomProcPtr);
  219.     function SkelGetZoom (wind: WindowPtr): SkelWindZoomProcPtr;
  220.     function SkelGetRectDevice (r: Rect;
  221.                                     var gd: GDHandle;
  222.                                     var devRect: Rect;
  223.                                     var isMain: Boolean): Boolean;
  224.     function SkelGetWindowDevice (wind: WindowPtr;
  225.                                     var gd: GDHandle;
  226.                                     var devRect: Rect): Boolean;
  227.     procedure SkelGetWindContentRect (wind: WindowPtr;
  228.                                     var r: Rect);
  229.     procedure SkelGetWindStructureRect (wind: WindowPtr;
  230.                                     var r: Rect);
  231.     function SkelGetWindTitleHeight (wind: WindowPtr): Integer;
  232.  
  233.     function SkelAddWindProp (w: WindowPtr;
  234.                                     propType: Integer;
  235.                                     propData: LongInt): Boolean;
  236.     procedure SkelRmveWindProp (w: WindowPtr;
  237.                                     propType: Integer);
  238.     function SkelGetWindProp (w: WindowPtr;
  239.                                     propType: Integer): SkelWindPropHandle;
  240.     function SkelGetWindPropData (w: WindowPtr;
  241.                                     propType: Integer): LongInt;
  242.  
  243.  
  244.  
  245. { menu handling routines }
  246.  
  247.     function SkelMenu (menu: MenuHandle;
  248.                                     doSelect: SkelMenuSelectProcPtr;
  249.                                     doClobber: SkelMenuClobberProcPtr;
  250.                                     subMenu: Boolean;
  251.                                     drawMenuBar: Boolean): Boolean;
  252.     procedure SkelRmveMenu (menu: MenuHandle);
  253.  
  254.     procedure SkelSetMenuHook (p: SkelMenuHookProcPtr);
  255.     function SkelGetMenuHook: SkelMenuHookProcPtr;
  256.  
  257.  
  258. { environment information routines}
  259.  
  260.     function SkelQuery (selector: Integer): LongInt;
  261.     function SkelTrapAvailable (theTrap: Integer): Boolean;
  262.   function SkelGestaltCheck (selector: OSType; featureCode: Integer): Boolean;
  263.  
  264.  
  265. {----------------------------------------------------------------------------}
  266. { Auxiliary routines }
  267. {----------------------------------------------------------------------------}
  268.  
  269.     procedure SkelApple (items: Str255;
  270.                                     doSelect: SkelMenuSelectProcPtr);
  271.  
  272.     procedure SkelDoEvents (mask: Integer);
  273.     procedure SkelDoUpdates;
  274.  
  275.     function SkelDlogFilter (filter: ModalFilterProcPtr;
  276.                                     doReturn: Boolean): ModalFilterProcPtr;
  277.     function SkelDlogFilterYD (filter: ModalFilterYDProcPtr;
  278.                                     doReturn: Boolean): ModalFilterYDProcPtr;
  279.     procedure SkelRmveDlogFilter;
  280.     procedure SkelDlogDefaultItem (item: Integer);
  281.     procedure SkelDlogCancelItem (item: Integer);
  282.     procedure SkelDlogTracksCursor (track: Boolean);
  283.  
  284.     function SkelCmdPeriod (var event: EventRecord): Boolean;
  285.  
  286.  
  287. {----------------------------------------------------------------------------}
  288. { Convenience routines }
  289. {----------------------------------------------------------------------------}
  290.  
  291.     procedure SkelGetMainDeviceRect (var r: Rect);
  292.     procedure SkelPositionRect (refRect: Rect;
  293.                                     var r: Rect;
  294.                                     hRatio: Fixed;
  295.                                     vRatio: Fixed);
  296.     procedure SkelGetReferenceRect (var r: Rect;
  297.                                     positionType: Integer);
  298.     procedure SkelPositionWindow (wind: WindowPtr;
  299.                                     positionType: Integer;
  300.                                     hRatio: Fixed;
  301.                                     vRatio: Fixed);
  302.     function SkelTestRectVisible (r: Rect): Boolean;
  303.  
  304. { alert presentation routines }
  305.  
  306.     function SkelAlert (alrtResNum: Integer;
  307.                                     filter: ModalFilterProcPtr;
  308.                                     positionType: Integer): Integer;
  309.     procedure SkelSetAlertPosRatios (hRatio: Fixed;
  310.                                     vRatio: Fixed);
  311.     procedure SkelGetAlertPosRatios (var hRatio: Fixed;
  312.                                     var vRatio: Fixed);
  313.  
  314. { control manipulation routines }
  315.  
  316.     function SkelHiliteControl (ctrl: ControlHandle;
  317.                                     hilite: Integer): Boolean;
  318.     procedure SkelDrawButtonOutline (ctrl: ControlHandle);
  319.     procedure SkelEraseButtonOutline (ctrl: ControlHandle);
  320.     procedure SkelFlashButton (ctrl: ControlHandle);
  321.     function SkelToggleCtlValue (ctrl: ControlHandle): Integer;
  322.  
  323. { dialog item manipulation routines }
  324.  
  325.     function SkelGetDlogCtl (dlog: DialogPtr;
  326.                                     item: Integer): ControlHandle;
  327.     function SkelSetDlogCtlHilite (dlog: DialogPtr;
  328.                                     item: Integer;
  329.                                     hilite: Integer): Boolean;
  330.     function SkelGetDlogCtlHilite (dlog: DialogPtr;
  331.                                     item: Integer): Integer;
  332.     procedure SkelSetDlogCtlValue (dlog: DialogPtr;
  333.                                     item: Integer;
  334.                                     value: Integer);
  335.     function SkelGetDlogCtlValue (dlog: DialogPtr;
  336.                                     item: Integer): Integer;
  337.     function SkelToggleDlogCtlValue (dlog: DialogPtr;
  338.                                     item: Integer): Integer;
  339.     procedure SkelSetDlogCtlRefCon (dlog: DialogPtr;
  340.                                     item: Integer;
  341.                                     value: LongInt);
  342.     function SkelGetDlogCtlRefCon (dlog: DialogPtr;
  343.                                     item: Integer): LongInt;
  344.     procedure SkelSetDlogStr (dlog: DialogPtr;
  345.                                     item: integer;
  346.                                     str: Str255);
  347.     procedure SkelGetDlogStr (dlog: DialogPtr;
  348.                                     item: integer;
  349.                                     var str: Str255);
  350.     procedure SkelSetDlogRect (dlog: DialogPtr;
  351.                                     item: integer;
  352.                                     r: Rect);
  353.     procedure SkelGetDlogRect (dlog: DialogPtr;
  354.                                     item: integer;
  355.                                     var r: Rect);
  356.     procedure SkelSetDlogProc (dlog: DialogPtr;
  357.                                     item: Integer;
  358.                                     p: SkelDlogItemProcPtr);
  359.     function SkelGetDlogProc (dlog: DialogPtr;
  360.                                     item: Integer): SkelDlogItemProcPtr;
  361.     procedure SkelSetDlogType (dlog: DialogPtr;
  362.                                     item: Integer;
  363.                                     itemType: Integer);
  364.     function SkelGetDlogType (dlog: DialogPtr;
  365.                                     item: Integer): Integer;
  366.     procedure SkelSetDlogRadioButtonSet (dlog: DialogPtr;
  367.                                     first: Integer;
  368.                                     last: Integer;
  369.                                     choice: Integer);
  370.     procedure SkelSetDlogButtonOutliner (dlog: DialogPtr;
  371.                                     item: Integer);
  372.     procedure SkelSetDlogCursor (dlog: DialogPtr);
  373.     function SkelDlogMapKeyToButton (dlog: DialogPtr;
  374.                                     var evt: EventRecord;
  375.                                     var item: Integer;
  376.                                     defaultItem: Integer;
  377.                                     cancelItem: Integer): Boolean;
  378.  
  379.     procedure SkelPause (ticks: LongInt);
  380.  
  381. implementation
  382.  
  383. end.